#include <windows.h>
#include "TestGame.h"

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
	MSG msg;
	bool bQuit = false;

	TestGame* pkGame = NULL; // asi no apunta a puntero
	pkGame = new TestGame(hInstance); // si no se crea, depende el compilador, seria 0 o NULL
									//NULL pq yo lo puse antes, si no apuntaria a lo q estaba apuntado, q puede ser basura
	if (!pkGame)
		return 0;

	pkGame->StartUp();
	
	while(!pkGame->Loop() && !bQuit)
	{
		if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
		{
			switch(msg.message)
			{
				// si es un mensaje de salir de la aplicacion
				case WM_QUIT:
					bQuit = true;
					break;

				// si es un mensaje de presionar una tecla
				case WM_KEYDOWN:
				{
					int iKeyCode = (int)msg.wParam;

					switch (iKeyCode)
					{
						// si esa tecla es ESC
						case VK_ESCAPE:
   							bQuit = true;
							break;
					}
					break;
				}
			}
		}

		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	if (pkGame)
	{
		pkGame->ShutDown();
		delete pkGame;
		pkGame = NULL;
	}

	return 0;
}